function spatial_filtering(fig)
    % 获取数据
    data = guidata(fig);
    img = data.img;  % 获取原始图像
    
    if isempty(img)
        uialert(fig, '请先加载图像！', '错误');
        return;
    end
    
    % 创建滤波器（例如：均值滤波器）
    filterType = 'average';  % 你可以根据需要修改为 'average'、'gaussian' 等
    
    switch filterType
        case 'average'
            % 创建一个3x3的均值滤波器
            filter = fspecial('average', [3, 3]);
        case 'gaussian'
            % 创建一个3x3的Gaussian滤波器
            filter = fspecial('gaussian', [3, 3], 0.5);
        case 'laplacian'
            % 创建一个拉普拉斯滤波器（锐化）
            filter = fspecial('laplacian', 0.2);
        otherwise
            % 默认使用均值滤波器
            filter = fspecial('average', [3, 3]);
    end
    
    % 执行滤波操作
    filteredImg = imfilter(img, filter, 'replicate');  % 'replicate' 处理边缘的方式
    
    % 显示滤波后的图像
    imshow(filteredImg, 'Parent', data.ax);
    
    % 将滤波后的图像存储到数据结构中
    data.img = filteredImg;
    guidata(fig, data);
end
